home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Night Owl 6-1
/
Night Owl's Shareware - PDSI-006-1 - Night Owl Corp (1992).iso
/
033a
/
mfm_109b.arj
/
VIEWFILE.PAS
< prev
Wrap
Pascal/Delphi Source File
|
1991-06-20
|
4KB
|
118 lines
{========================================================================}
Procedure ViewFile;
Var
Ext : String[3];
ReturnCode : Integer;
PathToUtility : PathStr;
Begin
If ReDirectTo = Console Then
Begin
If CurrentEntry^.TypeOfRecord In [FileRecord,Orphan] Then
Begin
If Pos('.',CurrentEntry^.FileName) > 0 Then
Begin
Ext := Copy(CurrentEntry^.FileName,Pos('.',CurrentEntry^.FileName)+1,
Length(CurrentEntry^.FileName)-Pos('.',CurrentEntry^.FileName));
AnsiClearScreen;
SetMemTop(HeapPtr);
SwapVectors;
If Pos(Ext,'ARCARJLZHPAKZIPZOO') In [1,4,7,10,13,16] Then
Begin
Write('Loading SHEZ...');
PathToUtility := FSearch('SHEZ.EXE',GetEnv('PATH'));
Exec(FExpand(PathToUtility),FileAreaPath+CurrentEntry^.FileName);
End
Else
Begin
Write('Loading LIST...');
PathToUtility := FSearch('LIST.COM',GetEnv('PATH'));
If PathToUtility = '' Then
Begin
PathToUtility := FSearch('L.COM',GetEnv('PATH'));
End;
Exec(FExpand(PathToUtility),FileAreaPath+CurrentEntry^.FileName);
End;
SwapVectors;
SetMemTop(HeapEnd);
SetupScreen; DisplayScreen;
End;
End;
End;
End;
{========================================================================}
Procedure CallShez;
Var
ReturnCode : Integer;
PathToUtility : PathStr;
Begin
If ReDirectTo = Console Then
Begin
If CurrentEntry^.TypeOfRecord In [FileRecord,Orphan] Then
Begin
If Length(CurrentEntry^.FileName) > 0 Then
Begin
AnsiClearScreen;
SetMemTop(HeapPtr);
Write('Loading SHEZ...');
SwapVectors;
PathToUtility := FSearch('SHEZ.EXE',GetEnv('PATH'));
If Pos('.',CurrentEntry^.FileName) = 0 Then
Begin
Exec(FExpand(PathToUtility),FileAreaPath+CurrentEntry^.FileName+'.*');
End
Else
Begin
Exec(FExpand(PathToUtility),FileAreaPath+CurrentEntry^.FileName);
End;
SwapVectors;
SetMemTop(HeapEnd);
SetupScreen; DisplayScreen;
End;
End;
End;
End;
{========================================================================}
Procedure CallList;
Var
ReturnCode : Integer;
PathToUtility : PathStr;
Begin
If ReDirectTo = Console Then
Begin
If CurrentEntry^.TypeOfRecord In [FileRecord,Orphan] Then
Begin
If Length(CurrentEntry^.FileName) > 0 Then
Begin
AnsiClearScreen;
SetMemTop(HeapPtr);
Write('Loading LIST...');
SwapVectors;
PathToUtility := FSearch('LIST.COM',GetEnv('PATH'));
If PathToUtility = '' Then
Begin
PathToUtility := FSearch('L.COM',GetEnv('PATH'));
End;
Exec(FExpand(PathToUtility),FileAreaPath+CurrentEntry^.FileName);
SwapVectors;
SetMemTop(HeapEnd);
SetupScreen; DisplayScreen;
End;
End;
End;
End;
{========================================================================}
Procedure ShellToDos;
Var
ReturnCode : Integer;
Begin
AnsiClearScreen;
SetMemTop(HeapPtr);
WriteLn('Type EXIT to return...');
SwapVectors;
Exec(GetEnv('COMSPEC'), '');
SwapVectors;
SetMemTop(HeapEnd);
SetupScreen; DisplayScreen;
End;
{========================================================================}